/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package BESA.Kernell.System;

import BESA.Config.ConfigBESA;
import BESA.Extern.ExternAdmBESA;
import BESA.Local.LocalAdmBESA;
import BESA.Mobile.MobileAdmBESA;
import BESA.Remote.DistributedExceptionBESA;
import BESA.Remote.RemoteAdmBESA;

/**
 *
 * @author User
 */
class SystemFactoryBESA {

    public AdmBESA createLocalAdmBESA(ConfigBESA configBESA) throws SystemExceptionBESA {
        return new LocalAdmBESA(configBESA);
    }

    public AdmBESA createRemoteAdmBESA(ConfigBESA configBESA) throws SystemExceptionBESA {
        try {
            return new RemoteAdmBESA(configBESA);
        } catch (DistributedExceptionBESA ex) {
            throw new SystemExceptionBESA (ex.toString());
        }      
    }

    public AdmBESA createExternAdmBESA(ConfigBESA configBESA) throws SystemExceptionBESA {
        try {
            return new ExternAdmBESA(configBESA);
        } catch (DistributedExceptionBESA ex) {
            throw new SystemExceptionBESA (ex.toString());
        }
    }
    
    public AdmBESA createMobileAdmBESA(ConfigBESA configBESA) throws SystemExceptionBESA {
        try {
            return new MobileAdmBESA(configBESA);
        } catch (DistributedExceptionBESA ex) {
            throw new SystemExceptionBESA (ex.toString());
        }
    }
}
